package psn.hui.sys.task;

import java.io.File;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import psn.hui.sys.constant.SysConstant;
import psn.hui.sys.utils.AppFileUtils;
/**
 * 定时清理临时文件任务
 * @author hui
 *
 */
@Component
@EnableScheduling	//开启定时任务
public class RecycleTempFileTask {
	/**
	 * 	每天晚上12点，执行清理临时文件
	 */
	@Scheduled(cron = "0 0 0 * * ? ")
	public void recycleTempFile() {
		File file = new File(AppFileUtils.PATH);
		new Thread(new Runnable() {
			@Override
			public void run() {
				deleteFile(file);
			}
		}).start();
	}
	/**
	 * 	删除临时文件
	 * @param file
	 */
	public void deleteFile(File file) {
		if(null != file && file.exists()) {
			if(file.isDirectory()) {
				//如果是目录
				File[] listFiles = file.listFiles();
				if(null != listFiles && listFiles.length>0) {
					//递归调用
					for (File file2 : listFiles) {
						deleteFile(file2);
					}
				}
			}else {
				//如果是临时文件,直接删除
				if(file.getName().endsWith(SysConstant.FILE_UPLOAD_TEMP_SUFFIX)) {
					file.delete();
				}
			}
		}
	}
}
